{$CLEO .qa}
{$USE CLEO+}
{$USE Audio}
{$USE newOpcodes}
{$USE ini}

0000: NOP

script_name "SPRPQA"

// By ArtemQa146

const
    obj_1 = 31@
    obj_2 = 30@
    obj_3 = 29@
    ped_1 = 28@
    task_1 = 27@
    model_1 = 26@
    coords_x = 25@
    coords_y = 24@
    coords_z = 23@
    angle_1 = 22@
    render_model = 21@
    render_model_2 = 20@
    Mode_sport = 19@
    Street = 1
    Gym = 2
end

0087: coords_x = 0@ // (float)
0087: coords_y = 1@ // (float)
0087: coords_z = 2@ // (float)
0087: angle_1 = 3@ // (float)
0085: render_model = 4@ // (int)
0085: render_model_2 = 5@ // (int)
0085: Mode_sport = 6@ // (int)

repeat
wait 0
04ED: load_animation  "PedEventsMod"
until 04EE:   animation "PedEventsMod" loaded


if
    Mode_sport == Street
then
    0209: 1@ = random_int_in_ranges 1 3
    if 1@ == 1
    then model_1 = 22
    end
    if 1@ == 2
    then model_1 = 21
    end
else
    0209: 1@ = random_int_in_ranges 1 4
    if 1@ == 1
    then model_1 = 18
    end
    if 1@ == 2
    then model_1 = 45
    end
    if 1@ == 3
    then model_1 = 154
    end
end

model.Load(968)
model.Load(1498)
model.Load(model_1)
if
    not model.Available(968)
then
    repeat
    wait 0
    model.Load(968)
    until model.Available(968)
end
if
    not model.Available(1498)
then
    repeat
    wait 0
    model.Load(1498)
    until model.Available(1498)
end
if
    not model.Available(model_1)
then
    repeat
    wait 0
    model.Load(model_1)
    until model.Available(model_1)
end
038B: load_requested_models

if
    Mode_sport == Street
then
    coords_z -= 5.0
    0E01: create_object_no_save 968 at coords_x coords_y coords_z offset 0 ground 0 to obj_1
    0177: set_object obj_1 Z_angle_to angle_1
    0400: store_coords_to 1@ 2@ 3@ from_object obj_1 with_offset 2.4 0.0 0.0
    0E01: create_object_no_save 968 at 1@ 2@ 3@ offset 0 ground 0 to obj_2
    0E01: create_object_no_save 968 at 1@ 2@ 3@ offset 0 ground 0 to obj_3
    0177: set_object obj_2 Z_angle_to angle_1
    0177: set_object obj_3 Z_angle_to angle_1
    0F04: create_render_object_to_object_from_special obj_1 special_model render_model offset 1.2 0.0 4.12 rotation 0.0 0.0 0.0 store_to 2@
    0F04: create_render_object_to_object_from_special obj_2 special_model render_model offset -1.2 0.0 4.12 rotation 0.0 0.0 0.0 store_to 2@
    0F04: create_render_object_to_object_from_special obj_3 special_model render_model offset -1.2 0.0 4.12 rotation 0.0 0.0 0.0 store_to 2@
else
    coords_z -= 1.0
    0E01: create_object_no_save 1498 at coords_x coords_y coords_z offset 0 ground 0 to obj_1
    0E01: create_object_no_save 1498 at coords_x coords_y coords_z offset 0 ground 0 to obj_2
    0E01: create_object_no_save 1498 at coords_x coords_y coords_z offset 0 ground 0 to obj_3
    0177: set_object obj_1 Z_angle_to angle_1
    0177: set_object obj_2 Z_angle_to angle_1
    0177: set_object obj_3 Z_angle_to angle_1
    0F04: create_render_object_to_object_from_special obj_1 special_model render_model_2 offset 0.75 -0.9 0.12 rotation 0.0 0.0 0.0 store_to 2@
    0F04: create_render_object_to_object_from_special obj_2 special_model render_model_2 offset 0.75 -0.9 0.12 rotation 0.0 0.0 0.0 store_to 2@
    0F04: create_render_object_to_object_from_special obj_3 special_model render_model_2 offset 0.75 -0.9 0.12 rotation 0.0 0.0 0.0 store_to 2@
end

08D2: object obj_1 scale_model 0.0
08D2: object obj_2 scale_model 0.0
08D2: object obj_3 scale_model 0.0
07F7: set_object obj_1 destructible 0
07F7: set_object obj_2 destructible 0
07F7: set_object obj_3 destructible 0

0E40: get_current_hour 1@
if or
    1@ > 21
    1@ < 6
    0E4D: random_percent 35
then
    model.Destroy(968)
    model.Destroy(1498)
    model.Destroy(model_1)
    04EF: release_animation "PedEventsMod"
    repeat
    wait 0
    until not locate_char_distance_to_coordinates $PLAYER_ACTOR pos coords_x coords_y coords_z radius 300.0
    if 03CA:   object obj_1 exists
    then 0108: destroy_object obj_1
    end
    if 03CA:   object obj_2 exists
    then 0108: destroy_object obj_2
    end
    if 03CA:   object obj_3 exists
    then 0108: destroy_object obj_3
    end
    0A93: terminate_this_custom_script
end

if
    Mode_sport == Street
then
    0400: store_coords_to 1@ 2@ 3@ from_object obj_1 with_offset 1.2 -0.135 5.0
else
    0400: store_coords_to 1@ 2@ 3@ from_object obj_1 with_offset 0.8 -1.0 0.0
end
009A: ped_1 = create_actor_pedtype 4 model model_1 at 1@ 2@ 3@
0E24: fix_char ped_1 ground 1 brightness 1 and_fade_in 0
0173: set_actor ped_1 Z_angle_to angle_1

model.Destroy(968)
model.Destroy(1498)
model.Destroy(model_1)
timera = 12000
timerb = 0

0812: AS_actor ped_1 perform_animation "tur_idle" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB


repeat
wait 0
    if
        056D:   actor ped_1 defined
    then
    
        // , ,    
        080E: get_actor ped_1 ped_event_to 3@
        if or
            actor.Dead(ped_1)
            not locate_char_distance_to_char $player_actor char ped_1 radius 120.0
            3@ == 49
            3@ == 9
            051A:   actor ped_1 damaged_by_actor $PLAYER_ACTOR
            not is_char_script_controlled ped_1
            not $ACTIVE_INTERIOR == 0
        then
            break
        end
        
        080E: get_actor ped_1 ped_event_to 3@
        if or
            3@ == 15
            3@ == 31
            3@ == 59
        then
            break
        end
        
            if
                0457:   player $PLAYER_CHAR aiming_at_actor ped_1
            then
                0E83: get_current_char_weaponinfo $PLAYER_ACTOR store_to 1@
                0E89: get_weaponinfo_fire_type 1@ store_to 2@ //     
                if or
                    2@ == 1 //  
                    2@ == 3 //   (  ..)
                then
                    break
                end
            end
        
        if and
            0611:   actor ped_1 performing_animation "tur_idle"
            timerb > 180000
        then
            break
        end
    
        0EFF: get_char_simplest_active_task ped_1 id_to 1@ pointer_to 2@
        if and
            0611:   actor ped_1 performing_animation "tur_idle"
            timera > 10000
            locate_char_distance_to_char $player_actor char ped_1 radius 40.0
        then
            if
                Mode_sport == Street
            then
                0209: 1@ = random_int_in_ranges 1 9
                if 1@ == 1
                then gosub @v1
                end
                if 1@ == 2
                then gosub @v2
                end
                if 1@ == 3
                then gosub @v3
                end
                if 1@ == 4
                then gosub @v4
                end
                if 1@ == 5
                then gosub @v5
                end
                if 1@ == 6
                then gosub @v6
                end
                if 1@ == 7
                then gosub @v7
                end
                if 1@ == 8
                then gosub @v8
                end
            else
                0209: 1@ = random_int_in_ranges 1 5
                if 1@ == 1
                then gosub @v2
                end
                if 1@ == 2
                then gosub @v5
                end
                if 1@ == 3
                then gosub @v7
                end
                if 1@ == 4
                then gosub @v8
                end
            end
            timera = 0
        else
            if
                8611:   not actor ped_1 performing_animation "tur_idle"
            then
                timera = 0
            end
        end
    else
        break
    end
until not player.Defined(0)
04EF: release_animation "PedEventsMod"

if
    0EEA: locate_char_distance_to_coordinates $PLAYER_ACTOR pos coords_x coords_y coords_z radius 50.0
then
    if 056D:   actor ped_1 defined
    then 01C2: remove_references_to_actor ped_1 // Like turning an actor into a random pedestrian
    end
    if 03CA:   object obj_1 exists
    then 01C4: remove_references_to_object obj_1 // This object will now disappear when the player looks away
    end
    if 03CA:   object obj_2 exists
    then 01C4: remove_references_to_object obj_2 // This object will now disappear when the player looks away
    end
    if 03CA:   object obj_3 exists
    then 01C4: remove_references_to_object obj_3 // This object will now disappear when the player looks away
    end
else
    if 056D:   actor ped_1 defined
    then 009B: destroy_actor ped_1
    end
    if 03CA:   object obj_1 exists
    then 0108: destroy_object obj_1
    end
    if 03CA:   object obj_2 exists
    then 0108: destroy_object obj_2
    end
    if 03CA:   object obj_3 exists
    then 0108: destroy_object obj_3
    end
end

repeat
wait 0
until not locate_char_distance_to_coordinates $PLAYER_ACTOR pos coords_x coords_y coords_z radius 150.0

0A93: terminate_this_custom_script


:v1
0615: define_AS_pack_begin 1@
0812: AS_actor -1 perform_animation "Tur_1" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_2" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 1 time 6000  // versionB
0812: AS_actor -1 perform_animation "TurTruk2" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "TurTruk1" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_3" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_celebrate" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_idle" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
0616: define_AS_pack_end 1@
0618: assign_actor ped_1 to_AS_pack 1@
061B: remove_references_to_AS_pack 1@
return

:v2
0615: define_AS_pack_begin 1@
0812: AS_actor -1 perform_animation "Tur_1" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_2" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 1 time 12000  // versionB
0812: AS_actor -1 perform_animation "Tur_3" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_idle" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
0616: define_AS_pack_end 1@
0618: assign_actor ped_1 to_AS_pack 1@
061B: remove_references_to_AS_pack 1@
return

:v3
0615: define_AS_pack_begin 1@
0812: AS_actor -1 perform_animation "Tur_1" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "TurTruk1" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_3" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_celebrate2" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_idle" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
0616: define_AS_pack_end 1@
0618: assign_actor ped_1 to_AS_pack 1@
061B: remove_references_to_AS_pack 1@
return

:v4
0615: define_AS_pack_begin 1@
0812: AS_actor -1 perform_animation "Tur_1" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_2" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 1 time 6000  // versionB
0812: AS_actor -1 perform_animation "TurTruk1" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_2" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 1 time 6000  // versionB
0812: AS_actor -1 perform_animation "TurTruk2" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_3" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_idle" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
0616: define_AS_pack_end 1@
0618: assign_actor ped_1 to_AS_pack 1@
061B: remove_references_to_AS_pack 1@
return

:v5
0615: define_AS_pack_begin 1@
0812: AS_actor -1 perform_animation "Tur_1" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_4" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_2" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 1 time 18000  // versionB
0812: AS_actor -1 perform_animation "Tur_3" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_celebrate2" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_idle" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
0616: define_AS_pack_end 1@
0618: assign_actor ped_1 to_AS_pack 1@
061B: remove_references_to_AS_pack 1@
return

:v6
0615: define_AS_pack_begin 1@
0812: AS_actor -1 perform_animation "Tur_1" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "TurTruk2" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_4" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_3" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_celebrate" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_idle" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
0616: define_AS_pack_end 1@
0618: assign_actor ped_1 to_AS_pack 1@
061B: remove_references_to_AS_pack 1@
return

:v7
0615: define_AS_pack_begin 1@
0812: AS_actor -1 perform_animation "Tur_1" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_2" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 1 time 6000  // versionB
0812: AS_actor -1 perform_animation "Tur_4" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_2" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 1 time 6000  // versionB
0812: AS_actor -1 perform_animation "Tur_3" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_celebrate2" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_idle" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
0616: define_AS_pack_end 1@
0618: assign_actor ped_1 to_AS_pack 1@
061B: remove_references_to_AS_pack 1@
return

:v8
0615: define_AS_pack_begin 1@
0812: AS_actor -1 perform_animation "Tur_1" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_4" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_2" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_4" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_2" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "Tur_3" IFP "PedEventsMod" framedelta 2.0 loopA 0 lockX 0 lockY 0 lockF 0 time -1  // versionB
0812: AS_actor -1 perform_animation "tur_idle" IFP "PedEventsMod" framedelta 2.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1  // versionB
0616: define_AS_pack_end 1@
0618: assign_actor ped_1 to_AS_pack 1@
061B: remove_references_to_AS_pack 1@
return